<?php

include_once("../dao/funcionario_dao_class.php");
include_once("../model/funcionario_model_class.php");
include_once("../controller/logradouro_controller_class.php");
include_once("../utilitarios/fotos_class.php");

class FuncionarioController{


        /**
         * 
         * @param type $sala
         * @param type $cep
         * @param type $nivel
         * @param type $nome
         * @param type $nascimento
         * @param type $apelido
         * @param type $numero
         * @param type $foto
         * @param array $telefone
         * @param array $email
         * @param array $especialidade
         * @param type $usuario
         * @param type $senha
         * @return int 0 erro
         * @return int 1 cadastrado com sucesso
         * @return int 2 cep não existe
         * @return int 3 nome ja cadastrado
         */
    function cadastrar($sala, $cep, $nivel, $nome, $nascimento, $apelido, $numero, $foto,
     array $telefone, array $email, array $especialidade, $usuario, $senha){

        $log = new LogradouroController();

        $fun = new FuncionarioDAO();

        $cep = str_replace(".", "", $cep);
        $cep = str_replace("-", "", $cep);
        //var_dump($log->selecionarIdPeloCep($cep));
        if(!$cep = $log->selecionarIdPeloCep($cep)){
            return 2;
        }elseif($fun->existe($nome)){
            return 3;
        }else{
            $funM = new FuncionarioModel();
            $funM->setSala($sala);
            $funM->setLogradouro($cep);
            $funM->setNivel($nivel);
            $funM->setNome($nome);

            $nascimento = implode("-", array_reverse(explode("/", $nascimento)));
            $funM->setNascimento($nascimento);
            $funM->setApelido($apelido);
            $funM->setNumero($numero);
            if(empty($foto)){
                $foto = NULL;
            }
            $funM->setFoto($foto);
            $funM->setTelefone($telefone);
            $funM->setEmail($email);
            if(count($especialidade) == 0){
                $especialidade = 'NULL';
            }
            $funM->setEspecialidade($especialidade);

            $funM->setUsuario($usuario);
            $funM->setSenha($senha);
            $funM->setAtivo(true);

            return $fun->insert($funM);
        } 
    }

    /**
     * 
     * @param type $id
     * @param type $sala
     * @param type $cep
     * @param type $nivel
     * @param type $nome
     * @param type $nascimento
     * @param type $apelido
     * @param type $numero
     * @param type $foto
     * @param type $telefone
     * @param type $email
     * @param type $especialidade
     * @param type $usuario
     * @param type $senha
     * @param type $ativo
     * @return int 0 erro
     * @return int 1 cadastrado com sucesso
     * @return int 2 cep não existe
     * @return int 3 nome ja cadastrado
     */
    function alterar($id, $sala, $cep, $nome, $nascimento, $apelido, $numero, $foto,
     $telefone, $email, $especialidade, $ativo){

        $log = new LogradouroController();

        $fun = new FuncionarioDAO();

        $cep = str_replace(".", "", $cep);
        $cep = str_replace("-", "", $cep);
        //var_dump($log->selecionarIdPeloCep($cep));
        if(!$cep = $log->selecionarIdPeloCep($cep)){
            return 2;
        }elseif($fun->existe($nome, $id)){
            return 3;
        }else{
            $funM = new FuncionarioModel();
            $funM->setSala($sala);
            $funM->setLogradouro($cep);
            $funM->setNome($nome);

            $nascimento = implode("-", array_reverse(explode("/", $nascimento)));
            $funM->setNascimento($nascimento);
            $funM->setApelido($apelido);
            $funM->setNumero($numero);
            if(empty($foto)){
                $foto = NULL;
            }
            $funM->setFoto($foto);
            $funM->setTelefone($telefone);
            $funM->setEmail($email);
            $funM->setEspecialidade($especialidade);

            $funM->setAtivo($ativo);

            $funM->setId($id);



            //var_dump($funM);
            return $fun->update($funM);
        }
    }

    function excluir($id){

        $fun = new FuncionarioDAO();

        return $fun->delete($id);
    }

    function selecionar(){
        $fun = new FuncionarioDAO();

        return $fun->findAllFuncionario();
    }
    
    function existeUsuario($usuario){
        $fun = new FuncionarioDAO();

        return $fun->existeUsuario($usuario);
    }
    
    function selecionarParaEquipe($urgencia, $especialidade = ""){
        $fun = new FuncionarioDAO();
        
        if(!empty($especialidade)){
            return $fun->selectForTeam($urgencia, $especialidade);
        }else{
            return $fun->selectAllForTeam($urgencia);
        }
    }

    function selecionarPorId($funcionario){
        $fun = new FuncionarioDAO();

        return $fun->findFuncionarioById($funcionario);
    }
    
    function selecionarPorSala($sala){
        $fun = new FuncionarioDAO();

        return $fun->findFuncionariosBySala($sala);
    }

    function iniciarSessao($usuario, $senha){
        $fun = new FuncionarioDAO();

        return $fun->sessionStart($usuario, $senha);
    }
    
    function salvarFoto($arquivo, $local){
        $img = new Fotos();
        
        return $img->upload($arquivo, $local);
    }
}

//$teste = new FuncionarioController();
//
//$telefone = array();
//$eemail = array();
//$especialidade = array();
//
//$t = new TelefoneModel();
//$t->setFuncionario(4);
//$t->setTelefone("(11)11111-1111");
//$t->setTipo("Pessoal");
//
//$telefone[0] = $t;
//
//$t = new TelefoneModel();
//$t->setFuncionario(4);
//$t->setTelefone("(22)11111-1111");
//$t->setTipo("Comercial");
//
//$telefone[1] = $t;
//
////email
//$e = new EmailModel();
//$e->setFuncionario(4);
//$e->setNome("emailTeste");
//$e->setTipo("Pessoal");
//
//$email[0] = $e;
//
//$e = new EmailModel();
//$e->setFuncionario(4);
//$e->setNome("emailTeste1");
//$e->setTipo("Comercial");
//
//$email[1] = $e;
//
//$esp = new EspecialidadeModel();
//$esp->setId(1);
//
//$especialidade[0] = $esp;
//
//$esp = new EspecialidadeModel();
//$esp->setId(2);
//
//$especialidade[1] = $esp;
//
//$esp = new EspecialidadeModel();
//$esp->setId(3);
//
//$especialidade[2] = $esp;
//
//
//$ok = $teste->alterar(4, 4, "12062-000", 2,"novo", "1988-06-22", "apelido", "300", "foto", $telefone, 
//        $email, $especialidade, "novo","novoUsu",false);
//
//if($ok){
//    echo "OK";
//}else{
//    echo "deu merda";
//}